package daily.kou2022_0123;

import java.util.Stack;

//20. 有效的括号
public class Num20 {
    public boolean isValid(String s) {
        Stack<Character>stack=new Stack<>();
        //将字符串转为字符输出
        for (int i = 0; i < s.length(); i++) {
            char c=s.charAt(i);
            //碰到左括号直接入栈
            if (c == '{' || c == '[' || c == '('){
                stack.push(c);
            }else {
                //此时是一个右括号
                if (stack.isEmpty()){
                    //此时右括号第一个是字符
                    return false;
                }
                //弹出左括号
                char top=stack.pop();
                if (c == ')' && top != '(') {
                    return false;
                }
                if (c == ']' && top != '[') {
                    return false;
                }
                if (c == '}' && top != '{') {
                    return false;
                }


            }
        }
        //此时字符串已经扫描完毕
        return stack.isEmpty();
    }

}
